package done.easy_001_100;

import lombok.extern.slf4j.Slf4j;
import org.junit.Test;

/**
 * Valid Parentheses
 * 给定一个只包括 '('，')'，'{'，'}'，'['，']' 的字符串，判断字符串是否有效。
 * <p>
 * 有效字符串需满足：
 * <p>
 * 左括号必须用相同类型的右括号闭合。
 * 左括号必须以正确的顺序闭合。
 * 注意空字符串可被认为是有效字符串。
 *
 * @author 大硕
 * 2019-03-22 7:34 AM
 **/
@Slf4j
public class ValidParentheses {

    @SuppressWarnings("all")
    public boolean isValid(String str) {
        //190322 first
        return false;
    }

    @Test
    public void test() {
        log.info("result:{}", isValid("(  )    [ ]{ }"));
        log.info("result:{}", isValid("(){[]}"));
    }
}




























/*
public boolean isValid(String str) {
    Stack<Character> stack = new Stack<>();

    char[] s = str.toCharArray();
    for (int i = 0; i < s.length; ++i) {
        //遇到 ( [ { 左侧括号之后入栈
        if (s[i] == '(' || s[i] == '[' || s[i] == '{') {
            stack.push(s[i]);
        } else {
            if (s[i]==' ') {
                continue;
            }

            if (stack.empty()) {
                return false;
            }

            if (s[i] == ')' && stack.peek() != '(') return false;
            if (s[i] == ']' && stack.peek() != '[') return false;
            if (s[i] == '}' && stack.peek() != '{') return false;
            //操作完后出栈
            stack.pop();
        }
    }
    return stack.empty();
}
*/